1. Field of the Invention
The present invention generally relates to graphics processing, and more specifically, to a system and method for removing seam artifacts when rendering a graphics image depicting a three-dimensional (3D) object using component pieces of a two-dimensional (2D) UV parameterization of a texture map.
2. Description of the Related Art
A broad variety of computer-based applications support graphical 3D models of real or imaginary objects. For example, computer aided design (CAD) applications are commonly used to compose 3D models representing real-world constructs that are related to construction projects, such as a house or a terrain surface. Similarly, computer game applications may use 3D models of imaginary constructs, such as fictitious characters, to allow users to visually interact with the constructs in a realistic fashion. Once composed, 3D models are often used to generate two-dimensional (2D) images for display purposes in a process known as graphics rendering.
One task that may be performed during graphics rendering is texture mapping. As is well-known, texture mapping is a method for adding simulated visual details, such as surface irregularities and color, to 3D models. Although such details may be modeled as values attached to the vertices of geometries in a 3D model of a given object, such a model would be very complex and time-consuming to process and display. To address this issue, the object may instead be modeled using simpler geometries to convey the overall shape of the object, and visual details may be captured as textures. Texture mapping techniques use such textures in conjunction with the geometries of the object to simulate additional visual details, thereby improving the realism of the displayed image of the object. For example, a texture representing an off-white, dimpled surface may be applied to a geometric sphere during rendering in order to display a realistic image of a golf ball.
Textures are typically defined in a 2D coordinate system known as texture space and conventionally denoted as a (u, v) coordinate system. Similarly, geometries representing an object are typically defined using a 3D coordinate system known as object space and denoted using (x, y, z) coordinates. Since textures are defined in 2D texture space but represent the visual details of objects that are defined in 3D object space, a process known as UV mapping is often used to create a flattened representation in texture space of the 3D model in object space. During UV mapping, various vertices in a surface mesh of a 3D model are chosen to define a relationship between object space and texture space. Flattening tools cut and unfold the surface mesh along the edges connecting the chosen vertices, layout tools arrange the resulting pieces in texture space, and the UV coordinates of each of the chosen vertices are set to the corresponding location in texture space. Each of the pieces in texture space is known as a UV piece and, collectively, the UV pieces are referred to as a UV set. Finally, textures that include simulated visual details, such as color and surface roughness, are linked to the UV set (i.e., the data in the texture is associated with the UV set). Unfortunately, when the object is rendered for display purposes and the UV set is applied to the surface of the 3D model, artifacts are often visually apparent along the seams where the edges of the UV pieces abut. These seam artifacts break the visual continuity of the image and detract from the realism of the rendered image.
One approach to reducing the seam artifacts is to paint onto textures that are linked to a UV set using a technique known as texel overscanning. In this approach, the painting tool is used to paint visual details onto overscan texels that abut the boundary texels of the UV pieces in texture space. These overscan texels are blended with the boundary texels to reduce seam artifacts. While overscanning can improve the quality of the rendered image, some seam artifacts may still be visually apparent. For example, pixels in the rendered image may exhibit interference between two pieces of the object represented by elongated triangles that were meant to be unconnected, but whose texels were blended together during overscanning. In addition, the colors used to paint the overscan texels are not necessarily well defined.
As the foregoing illustrates, what is needed in the art is a more effective technique for removing seam artifacts when using a UV set to render a 3D graphics image.